package java02;

class A {
    // 被复用的功能
    public void f() {
        // 省略,具体的实现代码
    }
}

// B 为子类型，A为父类型 ，通过“找干爹”方式实现功能复用
// 子类型B 依赖于 父类型A
class B extends A {
    public void f() {
        super.f(); // 复用父类型的功能
    }
}

// C作为整体类 包含 了局部类A的对象obj
// 整体类C 依赖于 局部类A
class C {
    private int anInt;
    private A obj;

    public C() {
        obj = new A();
    }

    public void f() {
        obj.f();// 复用父类型的功能
    }
}

// 参数化方式实现功能复用
class D {
    public void f(A obj) {
        obj.f();// 功能复用
    }
}

class Swing {

}

class Leg {

}

class Bird {
    private Swing swing1;
    private Swing swing2;
    private Leg leg1;
    private Leg leg2;
    // ....
}

class Cpu {

}
class Memory {

}

class Computer {
    private Cpu cpu;
    private Memory memory;
    // 。。。。
}


public class Test {
    public static void main(String[] args) {

    }
}
